package com.bjpowerrnode.javase.array;

/*
关于每个类型的默认值
数据类型          默认值
-------------------------
byte 1             0
short 2            0
int 4              0
long 8             0L
float 4           0.0F
double 8          0.0
boolean 1          false
char  2            \u0000
引用数据类型        null

当知道数组中想要存储什么数据的时候采用静态初始化。
当不知道数组中想存储什么的时候采用动态初始化，先分配内存空间
 */
public class ArrayTest02 {
    public static void main(String[] args) {
        //声明一个数组采用动态的方式
        int[] a = new int[4];//创建长度为4的int数组，数组中每个元素的默认值是0

        a[0] = 1;
        a[2]=111;
        //遍历数组
        for (int i = 0; i < a.length; i++) {
            System.out.println("数组中下标为" + i + "的元素的值为：" + a[i]);
        }

        //采用动态初始化方法，初始化一个Object类型到的数组
        Object[] obj = new Object[3];//长度为3，默认值为null

        for(int i = 0; i < obj.length; i++){
            System.out.println(obj[i]);
        }

        String[] strs = new String[3];
        for (int i = 0; i < strs.length; i++) {
            System.out.println("strs: " + strs[i]);
        }

        String[] strs2 = {"abc","def","xys"};
        for (int i = 0; i < strs2.length; i++) {
            System.out.println(strs2[i]);
        }

        //存储object
        Object o1 = new Object();
        Object o2 = new Object();
        Object o3 = new Object();

        Object[] objects = {o1,o2,o3};
        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);//自动调用toString()方法。
        }
    }
}
